#ifndef FHE_CORE_IVARDESC_H
#define FHE_CORE_IVARDESC_H

#include <fhe/core/IVar.h>

namespace fhe
{
  namespace core
  {
    class Node;
    
    class IVarDesc : public boost::noncopyable
    {
    public:
      typedef boost::shared_ptr< IVarDesc > Ptr;
      virtual IVar::Ptr build( Node* node ) = 0;
      virtual std::string name() const = 0;
    };
  }
}

#endif
